// type shuzi = number
// let a: shuzi
// a = 100

// 联合类型
// type Status = number | string
// type Gender = 'male' | 'female'

// function printStatus(param:Status):void {
//   console.log(param);
// }
// printStatus(304)
// printStatus('404')

// function printGerder(params:Gender):void {
//   console.log(params);
// }
// printGerder('male')

// 交叉类型
type Area = {
  height: number
  width: number
}

type Address = {
  num: number
  cell: number
  room: string
}

type House = Area & Address

const house: House = {
  height: 100,
  width: 200,
  num: 1,
  cell: 2,
  room: 'bedroom'
}

// 定义函数，特殊情况当类型声明限制函数返回值为void时，ts不会严格要求函数返回为空。但是你不能拿返回值做操作
function demo():void {}

type LogFunc = () => void
const f1: LogFunc = () => {
  console.log('f1');
  return 123
}

// 为了防止下面情况
const src = [1, 3, 2]
const el = [5, 6]
src.forEach((item) => el.push(item)) // 箭头函数没有{}，将push作为返回值。虽然返回值可以是任意但是返回值不能被操作








export {}